import { post } from '@/api/Http'

export interface GenerateQRCodeParams {
  content: string
  size?: number
  margin?: number
}

export interface AddLogoParams {
  qrcodeBase64: string
  logoFile: File
}

export interface GenerateCloudQRCodeParams {
  content: string
  size?: number
  margin?: number
  logoUrl?: string
  logoWidth?: number
  logoHeight?: number
  removeWhiteBorder?: boolean
}

export const QRCodeApi = {
  /**
   * 生成二维码
   * @param params 生成参数
   */
  async generateQRCode(params: GenerateQRCodeParams) {
    return post('/utility/qrcode/generate', params)
  },

  /**
   * 添加Logo到二维码
   * @param params Logo参数
   */
  async addLogoToQRCode(params: AddLogoParams) {
    const formData = new FormData()
    formData.append('qrcodeBase64', params.qrcodeBase64)
    formData.append('logo', params.logoFile)
    
    // 使用原生fetch发送FormData
    const response = await fetch(import.meta.env.VITE_APP_BASEURL + '/utility/qrcode/add-logo', {
      method: 'POST',
      body: formData
    })
    
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`)
    }
    
    return response.json()
  },

  /**
   * 生成云端二维码（带Logo）
   * @param params 生成参数
   */
  async generateCloudQRCode(params: GenerateCloudQRCodeParams) {
    return post('/utility/qrcode/generate', params)
  }
}